/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.open.oasis.docs.wsbpel._2._0.process.abstract_.util;

import java.util.List;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;

import org.open.oasis.docs.wsbpel._2._0.process.abstract_.*;

/**
 * <!-- begin-user-doc -->
 * The <b>Switch</b> for the model's inheritance hierarchy.
 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
 * to invoke the <code>caseXXX</code> method for each class of the model,
 * starting with the actual class of the object
 * and proceeding up the inheritance hierarchy
 * until a non-null result is returned,
 * which is the result of the switch.
 * <!-- end-user-doc -->
 * @see org.open.oasis.docs.wsbpel._2._0.process.abstract_.AbstractPackage
 * @generated
 */
public class AbstractSwitch<T> {
	/**
	 * The cached model package
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static AbstractPackage modelPackage;

	/**
	 * Creates an instance of the switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AbstractSwitch() {
		if (modelPackage == null) {
			modelPackage = AbstractPackage.eINSTANCE;
		}
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	public T doSwitch(EObject theEObject) {
		return doSwitch(theEObject.eClass(), theEObject);
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected T doSwitch(EClass theEClass, EObject theEObject) {
		if (theEClass.eContainer() == modelPackage) {
			return doSwitch(theEClass.getClassifierID(), theEObject);
		}
		else {
			List<EClass> eSuperTypes = theEClass.getESuperTypes();
			return
				eSuperTypes.isEmpty() ?
					defaultCase(theEObject) :
					doSwitch(eSuperTypes.get(0), theEObject);
		}
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected T doSwitch(int classifierID, EObject theEObject) {
		switch (classifierID) {
			case AbstractPackage.DOCUMENT_ROOT: {
				DocumentRoot documentRoot = (DocumentRoot)theEObject;
				T result = caseDocumentRoot(documentRoot);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TACTIVITY: {
				TActivity tActivity = (TActivity)theEObject;
				T result = caseTActivity(tActivity);
				if (result == null) result = caseTExtensibleElements(tActivity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TACTIVITY_CONTAINER: {
				TActivityContainer tActivityContainer = (TActivityContainer)theEObject;
				T result = caseTActivityContainer(tActivityContainer);
				if (result == null) result = caseTExtensibleElements(tActivityContainer);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TASSIGN: {
				TAssign tAssign = (TAssign)theEObject;
				T result = caseTAssign(tAssign);
				if (result == null) result = caseTActivity(tAssign);
				if (result == null) result = caseTExtensibleElements(tAssign);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TBOOLEAN_EXPR: {
				TBooleanExpr tBooleanExpr = (TBooleanExpr)theEObject;
				T result = caseTBooleanExpr(tBooleanExpr);
				if (result == null) result = caseTExpression(tBooleanExpr);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TBRANCHES: {
				TBranches tBranches = (TBranches)theEObject;
				T result = caseTBranches(tBranches);
				if (result == null) result = caseTExpression(tBranches);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCATCH: {
				TCatch tCatch = (TCatch)theEObject;
				T result = caseTCatch(tCatch);
				if (result == null) result = caseTActivityContainer(tCatch);
				if (result == null) result = caseTExtensibleElements(tCatch);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCOMPENSATE: {
				TCompensate tCompensate = (TCompensate)theEObject;
				T result = caseTCompensate(tCompensate);
				if (result == null) result = caseTActivity(tCompensate);
				if (result == null) result = caseTExtensibleElements(tCompensate);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCOMPENSATE_SCOPE: {
				TCompensateScope tCompensateScope = (TCompensateScope)theEObject;
				T result = caseTCompensateScope(tCompensateScope);
				if (result == null) result = caseTActivity(tCompensateScope);
				if (result == null) result = caseTExtensibleElements(tCompensateScope);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCOMPLETION_CONDITION: {
				TCompletionCondition tCompletionCondition = (TCompletionCondition)theEObject;
				T result = caseTCompletionCondition(tCompletionCondition);
				if (result == null) result = caseTExtensibleElements(tCompletionCondition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCONDITION: {
				TCondition tCondition = (TCondition)theEObject;
				T result = caseTCondition(tCondition);
				if (result == null) result = caseTExpression(tCondition);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCOPY: {
				TCopy tCopy = (TCopy)theEObject;
				T result = caseTCopy(tCopy);
				if (result == null) result = caseTExtensibleElements(tCopy);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCORRELATION: {
				TCorrelation tCorrelation = (TCorrelation)theEObject;
				T result = caseTCorrelation(tCorrelation);
				if (result == null) result = caseTExtensibleElements(tCorrelation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCORRELATIONS: {
				TCorrelations tCorrelations = (TCorrelations)theEObject;
				T result = caseTCorrelations(tCorrelations);
				if (result == null) result = caseTExtensibleElements(tCorrelations);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCORRELATION_SET: {
				TCorrelationSet tCorrelationSet = (TCorrelationSet)theEObject;
				T result = caseTCorrelationSet(tCorrelationSet);
				if (result == null) result = caseTExtensibleElements(tCorrelationSet);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCORRELATION_SETS: {
				TCorrelationSets tCorrelationSets = (TCorrelationSets)theEObject;
				T result = caseTCorrelationSets(tCorrelationSets);
				if (result == null) result = caseTExtensibleElements(tCorrelationSets);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCORRELATIONS_WITH_PATTERN: {
				TCorrelationsWithPattern tCorrelationsWithPattern = (TCorrelationsWithPattern)theEObject;
				T result = caseTCorrelationsWithPattern(tCorrelationsWithPattern);
				if (result == null) result = caseTExtensibleElements(tCorrelationsWithPattern);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TCORRELATION_WITH_PATTERN: {
				TCorrelationWithPattern tCorrelationWithPattern = (TCorrelationWithPattern)theEObject;
				T result = caseTCorrelationWithPattern(tCorrelationWithPattern);
				if (result == null) result = caseTCorrelation(tCorrelationWithPattern);
				if (result == null) result = caseTExtensibleElements(tCorrelationWithPattern);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TDEADLINE_EXPR: {
				TDeadlineExpr tDeadlineExpr = (TDeadlineExpr)theEObject;
				T result = caseTDeadlineExpr(tDeadlineExpr);
				if (result == null) result = caseTExpression(tDeadlineExpr);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TDOCUMENTATION: {
				TDocumentation tDocumentation = (TDocumentation)theEObject;
				T result = caseTDocumentation(tDocumentation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TDURATION_EXPR: {
				TDurationExpr tDurationExpr = (TDurationExpr)theEObject;
				T result = caseTDurationExpr(tDurationExpr);
				if (result == null) result = caseTExpression(tDurationExpr);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TELSEIF: {
				TElseif tElseif = (TElseif)theEObject;
				T result = caseTElseif(tElseif);
				if (result == null) result = caseTExtensibleElements(tElseif);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TEMPTY: {
				TEmpty tEmpty = (TEmpty)theEObject;
				T result = caseTEmpty(tEmpty);
				if (result == null) result = caseTActivity(tEmpty);
				if (result == null) result = caseTExtensibleElements(tEmpty);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TEVENT_HANDLERS: {
				TEventHandlers tEventHandlers = (TEventHandlers)theEObject;
				T result = caseTEventHandlers(tEventHandlers);
				if (result == null) result = caseTExtensibleElements(tEventHandlers);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TEXIT: {
				TExit tExit = (TExit)theEObject;
				T result = caseTExit(tExit);
				if (result == null) result = caseTActivity(tExit);
				if (result == null) result = caseTExtensibleElements(tExit);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TEXPRESSION: {
				TExpression tExpression = (TExpression)theEObject;
				T result = caseTExpression(tExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TEXTENSIBLE_ELEMENTS: {
				TExtensibleElements tExtensibleElements = (TExtensibleElements)theEObject;
				T result = caseTExtensibleElements(tExtensibleElements);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TEXTENSION: {
				TExtension tExtension = (TExtension)theEObject;
				T result = caseTExtension(tExtension);
				if (result == null) result = caseTExtensibleElements(tExtension);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TEXTENSION_ACTIVITY: {
				TExtensionActivity tExtensionActivity = (TExtensionActivity)theEObject;
				T result = caseTExtensionActivity(tExtensionActivity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TEXTENSION_ASSIGN_OPERATION: {
				TExtensionAssignOperation tExtensionAssignOperation = (TExtensionAssignOperation)theEObject;
				T result = caseTExtensionAssignOperation(tExtensionAssignOperation);
				if (result == null) result = caseTExtensibleElements(tExtensionAssignOperation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TEXTENSIONS: {
				TExtensions tExtensions = (TExtensions)theEObject;
				T result = caseTExtensions(tExtensions);
				if (result == null) result = caseTExtensibleElements(tExtensions);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TFAULT_HANDLERS: {
				TFaultHandlers tFaultHandlers = (TFaultHandlers)theEObject;
				T result = caseTFaultHandlers(tFaultHandlers);
				if (result == null) result = caseTExtensibleElements(tFaultHandlers);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TFLOW: {
				TFlow tFlow = (TFlow)theEObject;
				T result = caseTFlow(tFlow);
				if (result == null) result = caseTActivity(tFlow);
				if (result == null) result = caseTExtensibleElements(tFlow);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TFOR_EACH: {
				TForEach tForEach = (TForEach)theEObject;
				T result = caseTForEach(tForEach);
				if (result == null) result = caseTActivity(tForEach);
				if (result == null) result = caseTExtensibleElements(tForEach);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TFROM: {
				TFrom tFrom = (TFrom)theEObject;
				T result = caseTFrom(tFrom);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TFROM_PART: {
				TFromPart tFromPart = (TFromPart)theEObject;
				T result = caseTFromPart(tFromPart);
				if (result == null) result = caseTExtensibleElements(tFromPart);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TFROM_PARTS: {
				TFromParts tFromParts = (TFromParts)theEObject;
				T result = caseTFromParts(tFromParts);
				if (result == null) result = caseTExtensibleElements(tFromParts);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TIF: {
				TIf tIf = (TIf)theEObject;
				T result = caseTIf(tIf);
				if (result == null) result = caseTActivity(tIf);
				if (result == null) result = caseTExtensibleElements(tIf);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TIMPORT: {
				TImport tImport = (TImport)theEObject;
				T result = caseTImport(tImport);
				if (result == null) result = caseTExtensibleElements(tImport);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TINVOKE: {
				TInvoke tInvoke = (TInvoke)theEObject;
				T result = caseTInvoke(tInvoke);
				if (result == null) result = caseTActivity(tInvoke);
				if (result == null) result = caseTExtensibleElements(tInvoke);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TLINK: {
				TLink tLink = (TLink)theEObject;
				T result = caseTLink(tLink);
				if (result == null) result = caseTExtensibleElements(tLink);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TLINKS: {
				TLinks tLinks = (TLinks)theEObject;
				T result = caseTLinks(tLinks);
				if (result == null) result = caseTExtensibleElements(tLinks);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TLITERAL: {
				TLiteral tLiteral = (TLiteral)theEObject;
				T result = caseTLiteral(tLiteral);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TMESSAGE_EXCHANGE: {
				TMessageExchange tMessageExchange = (TMessageExchange)theEObject;
				T result = caseTMessageExchange(tMessageExchange);
				if (result == null) result = caseTExtensibleElements(tMessageExchange);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TMESSAGE_EXCHANGES: {
				TMessageExchanges tMessageExchanges = (TMessageExchanges)theEObject;
				T result = caseTMessageExchanges(tMessageExchanges);
				if (result == null) result = caseTExtensibleElements(tMessageExchanges);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TON_ALARM_EVENT: {
				TOnAlarmEvent tOnAlarmEvent = (TOnAlarmEvent)theEObject;
				T result = caseTOnAlarmEvent(tOnAlarmEvent);
				if (result == null) result = caseTExtensibleElements(tOnAlarmEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TON_ALARM_PICK: {
				TOnAlarmPick tOnAlarmPick = (TOnAlarmPick)theEObject;
				T result = caseTOnAlarmPick(tOnAlarmPick);
				if (result == null) result = caseTExtensibleElements(tOnAlarmPick);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TON_EVENT: {
				TOnEvent tOnEvent = (TOnEvent)theEObject;
				T result = caseTOnEvent(tOnEvent);
				if (result == null) result = caseTOnMsgCommon(tOnEvent);
				if (result == null) result = caseTExtensibleElements(tOnEvent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TON_MESSAGE: {
				TOnMessage tOnMessage = (TOnMessage)theEObject;
				T result = caseTOnMessage(tOnMessage);
				if (result == null) result = caseTOnMsgCommon(tOnMessage);
				if (result == null) result = caseTExtensibleElements(tOnMessage);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TON_MSG_COMMON: {
				TOnMsgCommon tOnMsgCommon = (TOnMsgCommon)theEObject;
				T result = caseTOnMsgCommon(tOnMsgCommon);
				if (result == null) result = caseTExtensibleElements(tOnMsgCommon);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TOPAQUE_ACTIVITY: {
				TOpaqueActivity tOpaqueActivity = (TOpaqueActivity)theEObject;
				T result = caseTOpaqueActivity(tOpaqueActivity);
				if (result == null) result = caseTActivity(tOpaqueActivity);
				if (result == null) result = caseTExtensibleElements(tOpaqueActivity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TPARTNER_LINK: {
				TPartnerLink tPartnerLink = (TPartnerLink)theEObject;
				T result = caseTPartnerLink(tPartnerLink);
				if (result == null) result = caseTExtensibleElements(tPartnerLink);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TPARTNER_LINKS: {
				TPartnerLinks tPartnerLinks = (TPartnerLinks)theEObject;
				T result = caseTPartnerLinks(tPartnerLinks);
				if (result == null) result = caseTExtensibleElements(tPartnerLinks);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TPICK: {
				TPick tPick = (TPick)theEObject;
				T result = caseTPick(tPick);
				if (result == null) result = caseTActivity(tPick);
				if (result == null) result = caseTExtensibleElements(tPick);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TPROCESS: {
				TProcess tProcess = (TProcess)theEObject;
				T result = caseTProcess(tProcess);
				if (result == null) result = caseTExtensibleElements(tProcess);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TQUERY: {
				TQuery tQuery = (TQuery)theEObject;
				T result = caseTQuery(tQuery);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TRECEIVE: {
				TReceive tReceive = (TReceive)theEObject;
				T result = caseTReceive(tReceive);
				if (result == null) result = caseTActivity(tReceive);
				if (result == null) result = caseTExtensibleElements(tReceive);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TREPEAT_UNTIL: {
				TRepeatUntil tRepeatUntil = (TRepeatUntil)theEObject;
				T result = caseTRepeatUntil(tRepeatUntil);
				if (result == null) result = caseTActivity(tRepeatUntil);
				if (result == null) result = caseTExtensibleElements(tRepeatUntil);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TREPLY: {
				TReply tReply = (TReply)theEObject;
				T result = caseTReply(tReply);
				if (result == null) result = caseTActivity(tReply);
				if (result == null) result = caseTExtensibleElements(tReply);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TRETHROW: {
				TRethrow tRethrow = (TRethrow)theEObject;
				T result = caseTRethrow(tRethrow);
				if (result == null) result = caseTActivity(tRethrow);
				if (result == null) result = caseTExtensibleElements(tRethrow);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TSCOPE: {
				TScope tScope = (TScope)theEObject;
				T result = caseTScope(tScope);
				if (result == null) result = caseTActivity(tScope);
				if (result == null) result = caseTExtensibleElements(tScope);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TSEQUENCE: {
				TSequence tSequence = (TSequence)theEObject;
				T result = caseTSequence(tSequence);
				if (result == null) result = caseTActivity(tSequence);
				if (result == null) result = caseTExtensibleElements(tSequence);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TSOURCE: {
				TSource tSource = (TSource)theEObject;
				T result = caseTSource(tSource);
				if (result == null) result = caseTExtensibleElements(tSource);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TSOURCES: {
				TSources tSources = (TSources)theEObject;
				T result = caseTSources(tSources);
				if (result == null) result = caseTExtensibleElements(tSources);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TTARGET: {
				TTarget tTarget = (TTarget)theEObject;
				T result = caseTTarget(tTarget);
				if (result == null) result = caseTExtensibleElements(tTarget);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TTARGETS: {
				TTargets tTargets = (TTargets)theEObject;
				T result = caseTTargets(tTargets);
				if (result == null) result = caseTExtensibleElements(tTargets);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TTHROW: {
				TThrow tThrow = (TThrow)theEObject;
				T result = caseTThrow(tThrow);
				if (result == null) result = caseTActivity(tThrow);
				if (result == null) result = caseTExtensibleElements(tThrow);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TTO: {
				TTo tTo = (TTo)theEObject;
				T result = caseTTo(tTo);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TTO_PART: {
				TToPart tToPart = (TToPart)theEObject;
				T result = caseTToPart(tToPart);
				if (result == null) result = caseTExtensibleElements(tToPart);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TTO_PARTS: {
				TToParts tToParts = (TToParts)theEObject;
				T result = caseTToParts(tToParts);
				if (result == null) result = caseTExtensibleElements(tToParts);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TVALIDATE: {
				TValidate tValidate = (TValidate)theEObject;
				T result = caseTValidate(tValidate);
				if (result == null) result = caseTActivity(tValidate);
				if (result == null) result = caseTExtensibleElements(tValidate);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TVARIABLE: {
				TVariable tVariable = (TVariable)theEObject;
				T result = caseTVariable(tVariable);
				if (result == null) result = caseTExtensibleElements(tVariable);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TVARIABLES: {
				TVariables tVariables = (TVariables)theEObject;
				T result = caseTVariables(tVariables);
				if (result == null) result = caseTExtensibleElements(tVariables);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TWAIT: {
				TWait tWait = (TWait)theEObject;
				T result = caseTWait(tWait);
				if (result == null) result = caseTActivity(tWait);
				if (result == null) result = caseTExtensibleElements(tWait);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case AbstractPackage.TWHILE: {
				TWhile tWhile = (TWhile)theEObject;
				T result = caseTWhile(tWhile);
				if (result == null) result = caseTActivity(tWhile);
				if (result == null) result = caseTExtensibleElements(tWhile);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			default: return defaultCase(theEObject);
		}
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Document Root</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Document Root</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDocumentRoot(DocumentRoot object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TActivity</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TActivity</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTActivity(TActivity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TActivity Container</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TActivity Container</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTActivityContainer(TActivityContainer object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TAssign</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TAssign</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTAssign(TAssign object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TBoolean Expr</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TBoolean Expr</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTBooleanExpr(TBooleanExpr object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TBranches</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TBranches</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTBranches(TBranches object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCatch</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCatch</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCatch(TCatch object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCompensate</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCompensate</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCompensate(TCompensate object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCompensate Scope</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCompensate Scope</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCompensateScope(TCompensateScope object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCompletion Condition</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCompletion Condition</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCompletionCondition(TCompletionCondition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCondition</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCondition</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCondition(TCondition object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCopy</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCopy</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCopy(TCopy object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCorrelation</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCorrelation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCorrelation(TCorrelation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCorrelations</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCorrelations</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCorrelations(TCorrelations object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCorrelation Set</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCorrelation Set</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCorrelationSet(TCorrelationSet object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCorrelation Sets</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCorrelation Sets</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCorrelationSets(TCorrelationSets object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCorrelations With Pattern</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCorrelations With Pattern</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCorrelationsWithPattern(TCorrelationsWithPattern object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TCorrelation With Pattern</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TCorrelation With Pattern</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTCorrelationWithPattern(TCorrelationWithPattern object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TDeadline Expr</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TDeadline Expr</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTDeadlineExpr(TDeadlineExpr object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TDocumentation</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TDocumentation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTDocumentation(TDocumentation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TDuration Expr</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TDuration Expr</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTDurationExpr(TDurationExpr object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TElseif</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TElseif</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTElseif(TElseif object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TEmpty</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TEmpty</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTEmpty(TEmpty object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TEvent Handlers</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TEvent Handlers</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTEventHandlers(TEventHandlers object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TExit</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TExit</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTExit(TExit object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TExpression</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TExpression</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTExpression(TExpression object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TExtensible Elements</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TExtensible Elements</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTExtensibleElements(TExtensibleElements object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TExtension</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TExtension</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTExtension(TExtension object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TExtension Activity</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TExtension Activity</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTExtensionActivity(TExtensionActivity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TExtension Assign Operation</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TExtension Assign Operation</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTExtensionAssignOperation(TExtensionAssignOperation object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TExtensions</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TExtensions</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTExtensions(TExtensions object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TFault Handlers</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TFault Handlers</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTFaultHandlers(TFaultHandlers object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TFlow</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TFlow</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTFlow(TFlow object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TFor Each</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TFor Each</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTForEach(TForEach object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TFrom</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TFrom</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTFrom(TFrom object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TFrom Part</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TFrom Part</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTFromPart(TFromPart object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TFrom Parts</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TFrom Parts</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTFromParts(TFromParts object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TIf</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TIf</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTIf(TIf object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TImport</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TImport</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTImport(TImport object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TInvoke</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TInvoke</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTInvoke(TInvoke object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TLink</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TLink</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTLink(TLink object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TLinks</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TLinks</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTLinks(TLinks object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TLiteral</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TLiteral</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTLiteral(TLiteral object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TMessage Exchange</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TMessage Exchange</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTMessageExchange(TMessageExchange object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TMessage Exchanges</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TMessage Exchanges</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTMessageExchanges(TMessageExchanges object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TOn Alarm Event</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TOn Alarm Event</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTOnAlarmEvent(TOnAlarmEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TOn Alarm Pick</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TOn Alarm Pick</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTOnAlarmPick(TOnAlarmPick object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TOn Event</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TOn Event</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTOnEvent(TOnEvent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TOn Message</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TOn Message</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTOnMessage(TOnMessage object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TOn Msg Common</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TOn Msg Common</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTOnMsgCommon(TOnMsgCommon object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TOpaque Activity</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TOpaque Activity</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTOpaqueActivity(TOpaqueActivity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TPartner Link</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TPartner Link</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTPartnerLink(TPartnerLink object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TPartner Links</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TPartner Links</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTPartnerLinks(TPartnerLinks object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TPick</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TPick</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTPick(TPick object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TProcess</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TProcess</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTProcess(TProcess object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TQuery</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TQuery</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTQuery(TQuery object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TReceive</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TReceive</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTReceive(TReceive object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TRepeat Until</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TRepeat Until</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTRepeatUntil(TRepeatUntil object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TReply</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TReply</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTReply(TReply object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TRethrow</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TRethrow</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTRethrow(TRethrow object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TScope</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TScope</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTScope(TScope object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TSequence</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TSequence</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTSequence(TSequence object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TSource</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TSource</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTSource(TSource object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TSources</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TSources</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTSources(TSources object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TTarget</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TTarget</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTTarget(TTarget object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TTargets</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TTargets</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTTargets(TTargets object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TThrow</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TThrow</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTThrow(TThrow object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TTo</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TTo</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTTo(TTo object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TTo Part</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TTo Part</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTToPart(TToPart object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TTo Parts</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TTo Parts</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTToParts(TToParts object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TValidate</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TValidate</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTValidate(TValidate object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TVariable</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TVariable</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTVariable(TVariable object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TVariables</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TVariables</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTVariables(TVariables object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TWait</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TWait</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTWait(TWait object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>TWhile</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>TWhile</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseTWhile(TWhile object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch, but this is the last case anyway.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
	 * @generated
	 */
	public T defaultCase(EObject object) {
		return null;
	}

} //AbstractSwitch
